import { IPSAppDEField } from '../../app/dataentity/ipsapp-defield';
import { IPSControlAction } from '../ipscontrol-action';
import { IPSDEEditForm } from '../form/ipsdeedit-form';
import { IPSWizardPanel } from './ipswizard-panel';
import { IPSDEWizard } from '../../dataentity/wizard/ipsdewizard';

/**
 *
 * 子接口类型识别属性[]
 * 继承父接口类型值[WIZARDPANEL]
 * @export
 * @interface IPSDEWizardPanel
 */
export interface IPSDEWizardPanel extends IPSWizardPanel {
  /**
   * 完成行为
   *
   * @type {IPSControlAction}
   */
  getFinishPSControlAction(): IPSControlAction | null;

  /**
   * 完成行为
   *
   * @type {IPSControlAction}
   */
  get finishPSControlAction(): IPSControlAction | null;

  /**
   * 完成行为（必须存在）
   *
   * @type {IPSControlAction}
   */
  getFinishPSControlActionMust(): IPSControlAction;

  /**
   * 初始化行为
   *
   * @type {IPSControlAction}
   */
  getInitPSControlAction(): IPSControlAction | null;

  /**
   * 初始化行为
   *
   * @type {IPSControlAction}
   */
  get initPSControlAction(): IPSControlAction | null;

  /**
   * 初始化行为（必须存在）
   *
   * @type {IPSControlAction}
   */
  getInitPSControlActionMust(): IPSControlAction;

  /**
   * 实体编辑表单集合
   *
   * @type {IPSDEEditForm[]}
   */
  getPSDEEditForms(): IPSDEEditForm[] | null;

  /**
   * 实体编辑表单集合
   *
   * @type {IPSDEEditForm[]}
   */
  get psDEEditForms(): IPSDEEditForm[] | null;

  findPSDEEditForm(objKey: any): IPSDEEditForm | null;

  /**
   * 实体向导对象
   *
   * @type {IPSDEWizard}
   */
  getPSDEWizard(): IPSDEWizard | null;

  /**
   * 实体向导对象
   *
   * @type {IPSDEWizard}
   */
  get psDEWizard(): IPSDEWizard | null;

  /**
   * 实体向导对象（必须存在）
   *
   * @type {IPSDEWizard}
   */
  getPSDEWizardMust(): IPSDEWizard;

  /**
   * 状态应用实体属性
   *
   * @type {IPSAppDEField}
   */
  getStatePSAppDEField(): IPSAppDEField | null;

  /**
   * 状态应用实体属性
   *
   * @type {IPSAppDEField}
   */
  get statePSAppDEField(): IPSAppDEField | null;

  /**
   * 状态应用实体属性（必须存在）
   *
   * @type {IPSAppDEField}
   */
  getStatePSAppDEFieldMust(): IPSAppDEField;

  /**
   * 显示操作栏
   * @type {boolean}
   */
  showActionBar: boolean;

  /**
   * 显示步骤栏
   * @type {boolean}
   */
  showStepBar: boolean;
}
